System for maintaining drug information and communicating with medication delivery devices

ABSTRACT

A system for maintaining drug information and communicating with medication delivery devices includes software designed for use in a hospital, pharmacy or biomedical technical service environments. The software may be provided on a computer readable medium. The software allows a facility to customize a drug library with both hard and soft drug limits and other parameters for use with an infuser having a plug and play module removably inserted into a slot within a housing, or for use with an infuser having a connectivity engine enclosed within the housing. The system supports data transfer to one or more infusers connected to one or more computers. The connection between the computer and the pump can be hard wired or wireless.

CROSS REFERENCE TO RELATED APPLICATIONS

This application claims priority based upon U.S. Nonprovisionalapplication Ser. No. 15/435,223 filed Feb. 16, 2017, and U.S.Nonprovisional application Ser. No. 13/301,518 filed Nov. 21, 2011, andU.S. Nonprovisional application Ser. No. 10/783,877 filed Feb. 20, 2004,and U.S. Provisional Application Ser. No. 60/519,646 filed Nov. 13,2003, and U.S. Provisional Application Ser. No. 60/527,550 filed Dec. 5,2003, which are expressly incorporated herein in their entirety.

FIELD OF THE INVENTION

This invention relates in general to medication administration ordelivery devices. More particularly, the present invention relates to anovel system for maintaining drug or medication information, providingcommunication between a computer and one or more infusion pumps, andassuring the integrity of such information and communication.

BACKGROUND OF THE INVENTION

Intravenous infusion therapy is prescribed where it is desirable toadminister medications and other fluids directly into the circulatorysystem of a patient. Without alerts that warn the clinician that ahigher or lower dose than clinical practice intended is beingprogrammed, the resulting amount delivered to the patient can lead toincreased morbidity or be fatal. There are various types of infusionpumps used by medical personnel to infuse medicinal fluids into apatient's body. There are very few pumps that have the feature of drugdose programming alerts. Some pumps use a customized drug library forelectronically downloadable drug pumps. For example U.S. Pat. No.6,269,340, which is incorporated by reference herein in its entirety,describes a system and computer readable medium for developing anddownloading a customized drug library from a personal computer (PC) intoan erasable, electronically loadable memory within the housing of asyringe pump. However, prior art systems and infusion pumps have severaldrawbacks. Following is a description of a novel infusion pump systemthat solves various problems found in the prior art.

SUMMARY OF THE INVENTION

The present invention relates to a system for communicating with one ormore medication administration or delivery devices. More particularly,the invention relates to a system that utilizes a remote computer and asoftware program on a computer readable medium to download informationto and/or upload information from one or more infusion pumps on a standalone basis or as part of an integrated medication management system.

In one example, the software provides the remote computer with powerfuldrug library creation, editing, and archiving capabilities that can beused by a user, including but not limited to, a biomedical engineer, apharmacist, a doctor, etc. A single drug formulary worksheet or databasewith each drug entry having an associated CCA designation can be createdfor the entire medical facility. The same drug may have different limitsestablished in different clinical care areas and different deviceparameters and settings may be applied depending on the recommended bestpractices of the medical facility for a particular clinical care area.The single drug formulary worksheet is easier to control, update andmaintain than a separate database or subdatabase for each clinical carearea. In one example of the software, the software provides a real timerule set validator that dynamically validates entries into the drugformulary worksheet with each keystroke as the user keys in data. Theuser is instantly notified if a value exceeds an allowed range or if thedata does not meet predetermined expected characteristics. In oneexample, the software also uses an extensible markup language forcommunications with the medication delivery devices. Communicationsbetween the computer and the devices may be validated using any desiredtechnique(s), such as a cyclic redundancy check. In another example, adatabase is used to store the history of multiple infusion pumps. Thisenables the ability to retrieve the event log data from all pumps in oneinstitution in one database, and being able to retrieve the data basedon place of use, time, error types, etc. Other types of reports are alsopossible.

The software is useful, in one example, as a part of a system utilizinga computer to download information into and upload information from oneor more medication delivery devices (such as infusion pumps). In oneembodiment, the system includes a remote personal computer (PC) that hasa memory for storing the software, a user interface, and display. Thesystem also includes one or more infusion pumps and one or moretechniques for connecting the PC to the pumps to facilitate thecommunication of information between the PC and the pumps. The infusionpumps can have single or multiple channels for delivering medications(i.e., fluids, medication, or mixtures thereof) to a patient. In oneexample, the information downloaded to the pumps can include, withoutlimitation: a drug library with one or more drug entries typicallygrouped by clinical care area, drug delivery parameters (such as hardand soft limits), device settings, parameters or limits; patientspecific information such as patient identification data; and caregiverspecific information such as caregiver identification.

In one example, the software and the communication protocol utilize anopen architecture that is adaptable to different versions, models andmakes of medication delivery devices. In one embodiment of the presentinvention, the software is utilized in a system that establishes wiredcommunication with a plurality of general purpose infusion pumps fordownloading and uploading information. In other embodiments, thesoftware is utilized in a system that establishes wireless communicationwith one or more general purpose infusion pumps having plug and playcommunication modules installed within the pump housing for downloadingand uploading information. In other embodiments the plug and playcommunication module is integrally incorporated on an optional circuitboard enclosed within the pump housing. Examples of medication deliverydevices included, but are not limited to, single or multiple channelgeneral purpose infusion pumps, patient controlled analgesia (PCA)pumps, ambulatory pumps, enteral pumps, IV infusion pumps, etc.

The software is also useful on a computer that interfaces with or actsas a medication management unit or server. In this example, the softwarefacilitates communication between the PC and one or more medicationdelivery devices within a patient area network (PAN). Examples of whatthe communication between the PC and devices can be used for include,but are not limited to, downloading patient specific drug deliveryinstructions for operating and controlling the medication deliverydevice, and uploading information such as device characteristics,conditions, usage and alarm histories.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention is illustrated by way of example and notlimitation in the figures of the accompanying drawings, in which likereferences indicate similar elements.

FIG. 1 is a front view of an infusion pump according to the presentinvention.

FIG. 1A is a rear view of the infusion pump of FIG. 1.

FIG. 1B is a rear perspective view of the infusion pump of FIG. 1 andshows the plug and play module that facilitates communication betweenthe pump and the computer.

FIG. 1C is a front perspective view of a CD-ROM disk or one possibleembodiment of a computer readable medium according to the presentinvention.

FIG. 1D is a perspective view of a data cable which can be used to bringmultiple pumps into communication with the computer through connectionto a junction box.

FIG. 1E is a perspective view of a dual jacked junction box cable forconnecting the pump plug and play module to the computer andinterconnecting to other pumps.

FIG. 1F is a perspective view of a data cable for connecting thecomputer to one of the dual jacks on the junction box.

FIG. 2 is a diagram illustrating how the present invention may be used.

FIG. 3 is a diagram illustrating one example of a process forcustomizing a library.

FIG. 4 is a diagram illustrating the communication between the PC andinfusion pumps.

FIG. 4A is a flow diagram illustrating the process of editing anddownloading a drug library.

FIG. 5 is a rear view depicting the connection of a plurality of pumpsto the computer.

FIG. 6 is an example of a worksheet the pharmacist sees on the computerwith the present invention.

FIG. 7 shows an example of a soft limit override report.

FIG. 7A is a table explaining the report of FIG. 7.

FIGS. 7B-7E and 8A-D show examples of a soft and hard limit overridereports for several different drugs.

FIGS. 9-11 are block diagrams of exemplary connectivity that may be usedwith the present invention.

FIGS. 12A-14 are block diagrams of one example of an electronics systemfor use with the present invention.

FIG. 15 is a diagram showing an example of a dialog box used whenediting a rule set for a drug.

FIG. 15A is a table showing the valid entry ranges for various fields orvalues in the Rule Set Editor of the present invention.

FIG. 16 shows one example of a rule set validator decision tree.

FIG. 17-19 are block diagrams showing a patient controlled analgesiapump with a wireless connectivity or communication engine according tothe present invention.

FIG. 20 is a diagram of one example of the XML exchange schema.

FIG. 20A is a table showing the XML object tag names utilized in oneexample of the present invention.

FIG. 21 is an example of a dialog box used with the rule set editor whenadding, editing, deleting, or viewing a rule set.

FIG. 22 is a block diagram illustrating the relationship between aDataModel and DataItem.

FIGS. 23-25 are diagrams illustrating the high-level interactionsbetween various processes of the present invention.

FIG. 26 is a diagram illustrates a data model to support a soft limitalert or override clinical event.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

In general, the present invention provides a system and method forproviding communication between a computer and one or more medicationadministering devices. The invention uses hardware and software toprovide the link between the computer and the infusion pumps. In oneexample, the invention is designed for use in a pharmacy or biomedicaltechnical service environment or in a Medication Management Unit (MMU)as described in applicant's co-pending provisional application Ser. No.60/527,583 entitled MEDICATION MANAGEMENT SYSTEM, filed Dec. 5, 2003 andthe regular patent application by the same title, filed Feb. 20, 2004,which are expressly incorporated herein in their entirety.

The invention allows a facility to customize a drug library for use withan infusion pump, such as a PLUM A+® infuser or pump, available fromAbbott Laboratories in Abbott Park, Ill. Other types of pumps may alsobe used with the present invention. For example, the invention may beused with patient-controlled analgesia (PCA) pumps, ambulatory pumps,enteral pumps, as well as IV infusion pumps. The invention also providesfor storage of data from multiple pumps and generates various safetyreports, events and alarm reports.

FIG. 1 is a front view of an Abbott PLUM A+® infuser or pump 12. FIG. 1Ais a rear view of the PLUM A+® pump of FIG. 1 wherein the housing 2 hasbeen modified to include a vertically elongated slot 3 formed thereinfor receiving a plug and play module 4 inside the housing 2 tofacilitate the communication between the computer and the infusionpumps. The plug and play module 4 is operatively disposed inside thehousing 2 and substantially enclosed, protected and insulated by thehousing. The plug and play module 4 has a thin, elongated card-shapedcase that fit into the slot 3 of the pump housing 2. Thus, the plug andplay module 4 of the present invention does not substantially increasethe space occupied by the pump. The plug and play module 4 shown inFIGS. 1A and 1B is adapted for hard-wired communication. However, asdiscussed below, the plug and play module 4 can also be adapted forwireless communication.

In one example, software of the present invention can store up to twelveClinical Care Areas (CCAs) with up to 100 drug entries (99 drug entriesand No Drug Selected) in each CCA for a total of 1200 entries in theMaster Drug Formulary. In this example, the software of the presentinvention supports data transfer of up to fifteen Abbott PLUM A+®SingleChannel Infusers connected to a single computer. Of course, theinvention can be designed with different storage and communicationcapabilities and be adapted for different pumps.

FIG. 2 is a diagram illustrating how the present invention may be used.As shown in FIG. 2, once the software is installed on a host computer(in this example, a personal computer or PC 10), a user can create adrug library (or use a library provided with the software media),including any desired rule sets. The drug library may include entriesincluding drug name, drug amount, drug unit, diluent amount, diluentunits, dosing units, drug class, hard limits and soft limits within thehard limits. It is not necessary to enter the drug concentration becausethis value is derivable from the drug amount, drug unit, diluent amountand diluent units. A user may also create a plurality of CCAs within thelibrary. Next, the user can connect the PC to a plurality of infusers 12and begin data transfer between the PC and the infusers. For example,the active drug library can be downloaded from the PC to the connectedinfusers. In addition, data can also be transferred from the infuser tothe PC. For example, event and alarm logs can be uploaded from connectedinfusers to the PC. Any other desired type of data or communications canalso be transferred between the PC and infusers.

FIG. 3 is a diagram illustrating one example of a process forcustomizing a library. The process of FIG. 3 begins with a user, such asa pharmacist, creating a worksheet on a PC 10. In this example, aworksheet can be thought of as a library that can still be edited andhas not yet been finalized. One salient feature of the worksheet is thatit provides two simultaneous views: a target “working” formulary viewand a source “reference” formulary view. In one example, a masterformulary view of the drugs can be in the reference view, while at thesame time, a view of target drugs for the CCA is shown. Likewise, inanother example, the target view could be one CCA such as “Medical”while the source is another CCA such as “Surgery”. The pharmacist isable to copy the exact same drug entry with its associated rule setsfrom the source to the target. This presentation reduces the time ittakes to develop all the necessary CCAs and promotes easy quality checksfor the pharmacist and a view across all the drug rule sets beingdeveloped. In addition there is a reduction in typing errors if one wasforced to reenter the same drug name, concentration and rule sets innumerous different CCAs. Errors in developing a drug library can lead toa reduced safety net for the nurses and increased patient morbidity.FIG. 6 shows one example of a worksheet that a pharmacist (or otheruser) may see on a computer with the present invention. FIG. 6 shows asplit screen view, with a master drug formulary table on the bottomportion 14 of the screen, and the drugs in the selected CCA on the topportion 16 of the screen. A pull down menu 18 is used to select whichCCA is viewed in the top portion 16.

Referring to FIGS. 3 and 20, the user next creates a CCA (if one is notalready created), which is a subset of a drug library for use in an areaor patient population of the hospital (e.g., Intensive Care Unit (ICU)),as defined by an authorized user. Each CCA can have a predefined numberof specific drugs. Also, a hospital can have a plurality of CCAs in adrug library. Next, the user creates any desired drug classes (forexample, antibiotics, narcotics, beta blockers, etc.) and then adds drugentries with rule sets to CCAs. Next, the CCA infuser settings are set.Examples of CCA infuser settings include maximum rate, default occlusionpressure, and maximum and/or minimum patient weight. Next, masterinfuser settings are set up. Examples of master infusion settingsinclude Continue Rate (the default rate the infuser switches to after atherapy has completed), Enable Delay/Standby (the default stand bysetting), Callback Notification (when enabled, causes the infuser 12 toemit an audible nurse callback alarm and display a notification betweensteps during a multi-step infusion or after loading a dose), and DeliverTogether (allows you to choose as a default the 2-channel deliverymethod). Before finalizing the worksheet, a worksheet report can beprinted and reviewed. Finally, the worksheet is finalized as the activelibrary.

After an active library is ready, a technician can connect one or moreinfusers 12 to the PC 10 for data transfer. FIGS. 4 and 5 are diagramsillustrating the communication between the PC 10 and the infusers 12.First, the active library is imported. Next, the technician connects theinfusers 12 to the PC 10. The infusers 12 can be connected to the PC 10in any desired manner. For example, a cable (FIG. 1F) can be connectedbetween a serial port on the PC 10 and a junction box (FIG. 1E), whichis also connected to the data port of each infuser 12 through the plugand play module 4 (FIG. 1A). The infusers 12 and PCs 10 can use anydesired type of interfaces including serial interfaces (RS232, USB,etc.), parallel interfaces, etc. In another example, the infusers 12 canhave wireless capabilities to provide a connection to the PC 10 asneeded. Once connected, information including but not limited toprogramming events, settings, and alarms, etc. can be uploaded to the PCas historical information (logs) or real-time information, and theactive library can be downloaded to all of the infusers 12. FIG. 5 is adiagram illustrating the connection of a plurality of pumps to acomputer using a serial cable with a plurality of serial connectors anda plurality of junction boxes.

FIG. 4A is another flow diagram illustrating the process describedabove.

As shown, a hospital formulary can be imported into one or moreworksheets. After a user finalizes a drug library, the active druglibrary can be downloaded to one or more infusers. FIG. 4A alsoillustrates that drug libraries can be archived and used again whendeveloping or editing worksheets.

The present invention includes several features that solve variousproblems in the prior art. Following is a description of these features.

The present invention makes use of Extensible Markup Language (XML)representation for Remote Procedure Calls (RPC). One benefit of usingXML is that the use of XML syntax documents allows the protocol tosupport different types of products. For example, a first infuser mayonly allow a certain communication format that is different from thatrequired by another infuser. By using XML, the system can communicatewith different types of infusers. Examples of different types of devicesinclude devices with different computer architectures, devices runningdifferent types of computer processors, devices running differentsoftware programs (or different versions of the same program). Inaddition, some devices operate using a binary data format that may beincompatible with the binary format used on other devices. In this way,the host computer can use the same message formats for various differenttypes of devices. The invention also provides the use of an XML parserin communicating with a patient-connected medical device, such as aninfusion pump.

In some applications of the present invention, the host and the pump mayhave incompatible binary data formats. For this reason, it is necessaryto define a lexical form that is the same on the host and the pump. Thiscommon lexical representation is called the canonical form. The processof converting from the processor-specific binary form to the canonicalform is called canonicalization.

Error checking commonly uses checksum or hash functions. However, thesefunctions are not always reliable. Since the present invention usesmedically critical data, it is important to use a more reliable errorchecking function. In addition, it is desirable to allow partial libraryupdates (such as an individual item in the drug library), while stillbeing able to validate the content of the entire library. The presentinvention supplements standard checksum or hash function with a GlobalCanonical Cyclic Redundancy Check (gCCRC) which guards the state of theentire exchange data structure. Its purpose is to allow the host andpump to verify that their data is the same after attempted datatransmission. The gCCRC can detect errors that are not trapped by lowerlevel checksum and other methods. For example, the gCCRC can detect whenthe number of packets dropped is exactly the range of sequence numbers.The gCCRC also provides a final “backstop” validation against every sortof protocol failure, including exceptions like pump disconnection, powerfailure, and software defects.

In one example, rather than the conventional approach of comparing twobinary images (an image at the host computer and an image at theinfuser) to see if they are the same to validate the content of datastored in the infuser, a comparison is made to determine whether twopossibly entirely different physical (bit-wise) representations aresemantically the same. This is accomplished by using a canonicalrepresentation (which neither side actually uses for storage) and thendoing the comparison between the two abstract representations. Forexample, to validate the contents of data in the infusion pump, a CRC iscalculated based on the data in the pump. Next, a CRC is calculatedbased on what the host thinks the data in the pump is. Next, thesenumbers are compared. If the numbers are the same, it is highly likelythat the data is the same at the host and at the infuser. One advantageto this approach is that only a small amount of data is required to betransferred for comparison purposes. A binary image of the entirelibrary does not need to be retransmitted for comparison. This approachalso eliminates the requirement of error checking during datatransmission.

Another aspect of the present invention relates to how the CRC iscalculated. The form of CRC used is specified by the Comite ConsultatifInternationale de Telegraphique et Telephonique (CCIT). However, withthe present invention, the CCIT CRC is done in the opposite bit order(right to left, versus left to right as specified by CCIT) so as to makethe computation more efficient. It turns out that since Intel processorshave the opposite “endianness” from the so-called “network byte order”prescribed by the CCIT, the bit reversal avoids some implementationproblems on some processors.

When constructing the words (which may have different endianness)described above using CRC, it is important to precisely define thesyntax of the document or data before using CRC. The present inventionuses XML schema for this purpose. In addition, XML schema is used todefine the semantics used for validation). The data to be validated(e.g., a drug library) is converted to its canonical form (describedabove) and validated and verified using the XML schema to determinewhether the data is both valid and well formed.

In the example of a library, this validation check occurs beforetransmitting the library to the pump.

One example of the XML schema of the present invention includes two mainparts, exchange schema and implied schema. Generally, the exchangeschema defines the structure of data to be communicated between a hostcomputer and an infusion pump. The implied schema defines (andvalidates) the types of data being exchanged.

FIG. 20 is a diagram showing one example of the XML exchange schema,using unified modeling language (UML) notation. As shown in the exampleof FIG. 20, a drug library includes infuser settings, at least one drugentry, and active library objects. In this example, there is only oneinfuser settings object and one active library object, but up to 1200drug entry objects. Each object shown in FIG. 20 contains attributes asdescribed in its respective box. The active library object includes upto 12 CCA objects. Each CCA object includes up to 100 rule set objects.In this example, there is only one rule set per drug, although multipledrugs can share a single rule set. The data structures shown in FIG. 20,and their members, are defined as an XML object with tag names (whichare optionally abbreviated/compacted) for each entry. FIG. 20Aidentifies the names used in one example. FIG. 20A shows commands alongwith queries and responses, and their corresponding abbreviations. Asshown, in addition to the data structures, the commands and queries arealso encoded in XML, and are processed the same as data by the hostcomputer (or server) and pump (or client) sides. As is apparent to oneskilled in the art, the commands and queries can be used with thepresent invention to efficiently provide communication between a hostcomputer and a client infusion pump. For example, the following commandends drug library updates, while communicating the server's calculatedglobal canonical checksum to the client (<xEU gccrc=“9B8D”/>). As shownin FIG. 20A, “xEU” is the abbreviation for the command“EndLibraryUpdate”, while the value “9B8D” is an example of ahexadecimal value of the server's checksum. The other commands andqueries are used in a similar manner.

The implied data is a contract between the host computer 10 and theinfusion pump 12. The implied data is managed by the host and used whendeveloping software for the host and clients. In one example, theimplied data is not transmitted over the communications link, nor doesthe infuser software ever process it. One purpose of the implied schemais to validate the value and types of data that are allowed to be passedto the client. One form of validation is range checking to restrict outof range values from being transmitted. Another form of validation canbe display accuracy. For example, the display range of a variable can betenths of digit. In such cases, sending a value of 12.00 would beinvalid as it describes accuracy beyond the range of the variable.Another type of validation may be specific type checking. The impliedschema takes the form of an XML schema document. The XML schema documentprovides type definitions for all the client/host specific typedefinitions in the exchange schema. The following are examples ofvarious implied schema types. The first example is a simple string typeschema, which defines an institution name string to be 30 characters orless.

-   -   <?xml version=“1.0” encoding=“UTF-8”?>    -   <xs:schema xmlns:xs=“http://www.w3.org/2001/XMLSchema”>        -   <!-- defines t_InstitutionName as a 30-character string -->        -   <xs:simpleType name=“t_InstitutionName”>            -   <xs:restriction base=“xs:string”>                -   <xs:maxLength value=“30”/>            -   </xs:restriction>        -   </xs:simpleType>    -   </xs:schema>

XML schema supports fixed-point representations directly through afractionDigits facet on most numeric data types. The following examplesdefine minimum and maximum decimal and fraction digit values.

A fixed point type specification

-   -   <xs:simpleType name=“t_DefaultVTBI”>        -   <xs:restriction base=“xs:decimal”>            -   <xs:minInclusive value=“0.1”/>            -   <xs:maxInclusive value=“999.0”/>            -   <xs:fractionDigits value=“1”/>        -   </xs:restriction>    -   </xs:simpleType>

In one example, the present invention constructs an implied enumerationby defining an xs:enumeration restriction over an EncodedString.

A MESA implied enumeration t_DosingUnits

-   -   <xs:simpleType name=“t_DosingUnits”>        -   <xs:restriction base=“EncodedString”>            -   <xs:enumeration value=“mL/hr” encoding=“0”/>            -   <xs:enumeration value=“mcg/kg/min” encoding=“1”/>            -   <xs:enumeration value=“mcg/kg/hr” encoding=“2”/>            -   <xs:enumeration value=“mcg/min” encoding=“3”/>            -   <xs:enumeration value=“mcg/hr” encoding=“4”/>            -   <xs:enumeration value=“mg/kg/hr” encoding=“5”/>            -   <xs:enumeration value=“mg/min” encoding=“6”/>            -   <xs:enumeration value=“mg/hr” encoding=“7”/>            -   <xs:enumeration value=“grams/hr” encoding=“8”/>            -   <xs:enumeration value=“ng/kg/min” encoding=“9”/>            -   <xs:enumeration value=“units/kg/hr” encoding=“10”/>            -   <xs:enumeration value=“units/min” encoding=“11”/>            -   <xs:enumeration value=“units/hr” encoding=“12”/>            -   <xs:enumeration value=“mUn/min” encoding=“13”/>            -   <xs:enumeration value=“mEq/hr” encoding=“14”/>        -   </xs:restriction>

Multiple ranges for a single value can be specified for a value via the<xs:choice> tag. The following examples relate to a patient weightfield, including upper and a lower ranges.

-   -   t_PatientWeight        -   <xs:group name=“t_PatientWeight”>            -   <xs:choice>                -   <xs:element name=“PatientWeight”                    type=“t_PatientWeight_0”/>                -   <xs:element name=“PatientWeight”                    type=“t_PatientWeight_1”/>            -   </xs:choice>            -   </xs:group>    -   t_PatientWeight 0        -   <xs:simpleType name=“t_PatientWeight_0”>            -   <xs:restriction base=“xs:decimal”>                -   <xs:minInclusive value=“100”/>                -   <xs:maxInclusive value=“500”/>                -   <xs:fractionDigits value=“0”/>            -   </xs:restriction>        -   </xs:simpleType>    -   t_PatientWeight 1        -   <xs:simpleType name=“t_PatientWeight_1”>            -   <xs:restriction base=“xs:decimal”>                -   <xs:minInclusive value=“0.1”/>                -   <xs:maxInclusive value=“99.9”/>                -   <xs:fractionDigits value=“1”/>            -   </xs:restriction>

One issue with using XML is that XML is very verbose, which increasesbandwidth requirements. To reduce communications overhead, the inventionuses a more compact form of XML that is still standard compliant, butoperates with significantly reduced bandwidth by abbreviating the XMLidentifiers to a few character mnemonics. The encoding is well formedXML that uses terse element and attribute names. In one example, eachXML Short Name may consist solely of alphabetic characters and beuniquely identified by its first character. The commands pass argumentsas XML attributes. The responses return values as attribute valuesand/or as elements nested inside the response element. For example, thelong XML name “InfuserSetting” is shortened to “IS”. So, an exemplaryline of commands might look like this:

Example: Compact PumpConfiguration instance

-   -   <IS>        -   <FKR>1</FKR>        -   <LPB>0</LPB>        -   <iDS>true</iDS>        -   <dCB>true</dCB>        -   <HXP>6</HXP>    -   </IS>    -   rather than the non-compact version, which would look like this:

Example: PumpConfiguration instance

-   -   <InfuserSetting>        -   <KVORateMode>KVO</KVORateMode>        -   <PiggybackMode>CONCURRENT</PiggybackMode>        -   <DelayStart>true</DelayStart>        -   <Callback>true</Callback>        -   <DefaultOcclusionPressure>6</DefaultOcclusionPressure>    -   </InfuserSettings>

In this example, the encoding reduced approximately 200 characters toapproximately 60 characters, yielding a ratio of about 3.3 to 1.

The present invention uses an extended data port protocol that includesa reliable binary transport protocol on top of the data port protocol.In other words, a protocol is run over the data port protocol. Oneadvantage of this approach is improved compatibility between differentmachines. Another advantage is that large messages can be segmented andreassembled. This allows very large messages to be sent through theprotocol stack, even if the host or pump cannot handle large messages. Alarge message will be segmented into small packets and laterreassembled.

The invention assures the safety of the database by allowing only onelibrary to be maintained in the computer that can be downloaded to pumpsand is termed the active library. This assures that the wrong library isnot downloaded over time. A library that can be edited is termed aworksheet and many different worksheets can exist. A library that wasonce active and is no longer active is archived and automaticallydesignated as such. To be able transfer an active library to anothercomputer a unique special file extension and recognition was developed.This allows for the transfer of the exact same library betweenpharmacies of a larger health care facility that may have multiplesites.

Another advantage of the present invention is that the system is capableof simultaneously downloading data to a plurality of infusion pumps. Thelibrary is transmitted in a multicast fashion to multiple pumps. Thesystem will periodically verify the status of each pump using point topoint communication. If one of the pumps has a problem, the download canbe restarted, and each pump will be notified of the new download. In oneexample, when a pump detects a download error during a broadcastdownload, the pump sends a message to the host computer, which thenhalts the download. The host then polls all of the pumps to determinethe point where all of the pumps received messages with valid data.Since the download takes place over multiple individual tagged messages,a tag number allows the host computer to identify the point where nopumps had reported a download error. When the download is continued, thedownload begins at this point, so all of the data does not have bedownloaded again. The multicast communication strategy optimizes thedownload throughput. For example, if a library takes 10 minutes todownload, 15 pumps can received the download in 10 minutes, as opposedto the 150 minutes it would take to download to each pump individually.This blend of multicast and point-to-point communication facilitates arobust download and a retry/recovery mechanism to individual pumps.Another advantage of the current invention is that the worksheetprovides the pharmacists with a master formulary view at the same timeproviding for a CCA view of drug entries. Editing and copying of drugentries can be done in either view. This presentation promotes easyquality checks, a safety feature, for the pharmacist as drug or dosinglimit alerts being developed. Errors in developing a drug library canlead to a reduced safety net for the nurses and increased patientmorbidity.

Another advantage of the present invention is that a single database canbe used to store the history of multiple infusion pumps. This enablesthe ability to retrieve the event log data from all pumps in oneinstitution in one database, and being able to retrieve the data basedon place of use, time, error types, etc. Other types of reports are alsopossible. Also, even with a centralized database, the system can includemultiple PCs, which can each download to any desired pumps.

Similarly, the present invention is capable of collecting pump use dataand generating related reports. For example, soft limit override datacan be collected for the generation of a report relating to soft limitoverrides. This type of report can be used for any desired purpose suchas evaluating personnel, setting future limits, etc.

The present invention includes an active drug library editor that canvalidate drug data in real time. The invention is capable of managing anunlimited number of drug libraries. Drug libraries are configured with aMaster Drug Formulary (the drug table from which CCAs are created) andmultiple CCAs. Libraries can be active (a worksheet that has beenfinalized), archived (a previously active library that has been saved tothe database) or a worksheet (a draft library that has not yet beenapproved for download to infusers and can still be edited). Only activelibraries are allowed to be downloaded to a pump. Items such asconfiguration parameters that describe the operational behavior of apump can be set pump-wide or specific to a CCA. These parameters areunique to each library. TallMan lettering is supported for drug names.Changes to TallMan lettering is replicated throughout a library. Eachdrug in the library is associated with a drug classification. Drugclassifications are unique to each library. A drug may have multipleconcentrations and multiple rule sets. Rule sets can be full, limited,or none.

Another feature of the present invention relates to the various levelsof rules that the active drug library can utilize. The present inventionallows the use of multiple rule levels including device rules (e.g.,rules relating to the operation or limitations of a particular medicaldevice or type of device), CCA rules (e.g., rules relating to theparticular CCA), drug rules (rules relating to the particular drugs),and patient rules (e.g., rules relating to particular patients such asage, weight, health, medical history, allergies, etc.).

The Rule Set Editor (RSE) is used to create and edit rules sets in adrug database. RSE is responsible for accurately displaying rule setsand enabling the “Add”, “Save” or “Delete” buttons when appropriate.FIG. 21 shows an example of a dialog box used with the RSE when adding,editing, deleting, or viewing a rule set. As shown in FIG. 21, there arefields for drug name, drug class, drug amount, drug diluent, andsoft/hard limits. RSE is responsible for adjusting its input criteriaand validating a rule set while a user is making input selections. RSEuses RuleSetDataItem (RSDI) (described below) as a data model andRuleSetValidator (RSV) (described below) as a controller. RSE sends amessage to RSDI when the model should be validated. RSDI, in turn, sendsa message to RSV to validate RSDI. This separation of responsibility isestablished to encapsulate a standard validation implementation for boththe rule set editor user interface and the library import process.

Another advantage of the present invention relates to the drugconfiguration. The present invention includes a special rule set thatallows the definition of a drug name and concentration for a particulardrug. However, at the pump, a user can override the drug amount and drugunit. So, a limit is set, but a user is allowed to define theconcentration. Therefore, the invention has the ability to selectivelylimit or allow the user to select the units of delivery on adrug-by-drug basis, and the ability to label a drug with concentrationin drug units, but deliver in other units (such as ml/hr).

Another advantage of the present invention relates to constraintdefinitions. The invention includes a set of unique constraint objects.A constraint object defines a standard implementation for validatingkeyboard, mouse and import inputs. For example, a particular field maybe constrained to a numerical range. The constraints prevent things frombeing done incorrectly. However, sometimes one object input is based onthe content of another object and with the present invention constraintdefinitions change dynamically as input definitions change. For example,for the object “drug amount”, the constraint can change depending on theunits of measure (e.g., grams, etc.).

Dose Rate Document (DRD) aggregates multiple constraints so that inputverification can be cascaded through an unlimited number of constraintobjects. In one example of an implementation of a DRD, the objectDoseRateDocument extends javax.swing.text.PlainDocument to implement therequired method insertString(int offset, String string, AttributeSetattributes). This method internally invokesStringConstraint.checkInput(String proposed Value) when appropriate.

Rule Set Constraints (RSC) provide specific DRDs for drug amount,diluent amount, and hard and soft limits. RSC are used to change thesesettings dynamically to validate inputs based on drug unit and dosingunit. RSC aggregates several constraint objects to verify that entriesare within valid ranges. In one example, drugAmount, diluentAmount, andlimits have their own DRD and Constraint object, but each is unique tomeet the targets needs. RSC is initialized with default values whenconstructed. Successive calls to setDrugAmountConstraints(drugLabelPK)adjust the drugAmount DRD. Similarly, calls tosetDiluentAmountConstraint( ) adjust the diluentAmount DRD. In oneexample of the present invention, the only constraint is diluentAmount.Likewise, successive calls to setLimitConstraints(dosingUnitPK) adjustthe limit amounts.

Rule Set Data Item (RSDI) is a specialized DataItem and acts as a datamodel. Getter/Setters are provided to get and set attributes in thevarious forms needed by RVDC (described below), RSE and RSV (describedbelow). DataItems know how to add themselves in a SQL Server database.In one example of the present invention, RSV is implemented as a staticobject and not a private implementation of RSDI. This separation ofresponsibility makes the implementation and maintenance of RSV simpler.

Rule Set Data Model (RSDM) is a specialized AbstractDataModel thatprovides a virtual data store for all RSDI items that are beingimported.

Rate Versus Dose Calculations (RVDC) calculate the delivery ratecorresponding to a given dose, in the context of such variables aspatient weight, drug concentrations, etc. In one example, RVDC is nottied to a particular infusion pump implementation. Also, in one example,the RVDC algorithm is purely algebraic. RSDI owns the data that isextracted by RSV and passed to RVDC to calculate eithercalculateDoseFromRate or calculateRateFromDose.

The Rule Set Validator (RSV) orchestrates the validation process for allrule set data fields. The RSV starts by resetting the constraints neededby drugAmount, diluentAmount and the limits. It systematically validateseach field for conformance, as follows:

-   -   Length cannot be zero or blank and cannot exceed the maximum        length.    -   Pixel length cannot exceed displayable area on pump.    -   Name is checked for invalid characters.

RSV is used to validate rule sets from different sources, including:user input, imported libraries, copied drugs from one location toanother, and makes adjustments to CCA maximum rate settings. RSV isconsistently and constantly used throughout the system to validate thata rule set is well formed, valid and will not violate the deliveryconformance for the entire library. If a user attempts to enter datathat violate a rule, the “save” button in the dialog box will be dimmedand disabled, forcing the user to change the data that violates therule. FIG. 15 is a diagram showing an example of a dialog box used whenediting a rule set for a drug. In this example, the user edits whateveris desired, and then clicks the “save” button. If the entries are notvalid, the “save” button will be dimmed and the user will not be allowedto save the changes.

FIG. 16 shows one example of a rule set validator decision tree. Thedecision tree shown in FIG. 16 describes the basic logic used to assessthe validity of rule set limits. Generally, the decision tree asks ifthe rule set is equal to “NONE”, “FULL”, or “LIMITED”, and then asks theother questions outlined in the decision tree to determine if the ruleset is valid. FIG. 16 illustrates the dynamic checking that is done eachtime a user makes a keyboard or mouse entry while making or editing arule set. FIG. 16 also shows how the RSV checks to see if such adelivery rate/dose would be acceptable based upon the dose limits. Othersettings may also factored in or analyzed in a similar manner, such asthe maximum rate CCA infuser setting.

Another feature of the present invention relates to Data Models. DataModels are used to import data into a drug library, copy from a sourceto a destination CCA library, and to edit CCA settings within a CCALibrary. The following figures illustrate the relationship andhigh-level interactions between DrugLibraryManager (DLM) and RSDI. FIG.22 shows the relationship between a DataModel and DataItem. For clarity,CCASettings and CCALibrary DataModel and DataItem are not shown in FIG.22. FIG. 23 is a diagram illustrating the high-level interaction betweenthe import process and RuleSetDataItem. As mentioned above, there aresome similarities between an import and the RSE. For example, RSDI isvalidated by RSV. The import process consumes either a tab separatedvalue (TSV) or a comma separated value (CSV) file, creating an RSDMobject. RSDM is used to create a Drug Library, CCA, CCA Library View,and Master Drug Formulary (MDF) entries. FIGS. 24 and 24A show twopreferred UML diagrams illustrating the high-level interaction betweenDrugLibraryManager (DLM) and RSDI when rule sets are copied from atarget to a source CCA Library. Similarly, FIG. 25 illustrates thehigh-level interaction between DrugLibraryManager (DLM) and RSDI whenCCA Settings are edited in the target CCA Library.

The present invention also has a specialized combo box editor called theDose Rate Editor (DRE). The DRE is used to establish the DRD fordrugAmount, diluentAmount and the limits. The DRE is unique because itmakes special allowances for both dose rate input and the reserved word‘None’. The DRE converts all absolute values of zero (e.g., “0”, “0.0”,“0.00”, “none”, etc.) to ‘None’ and strips off any trailing zero ordecimal points for non-zero values.

As mentioned before, the present invention is capable of using both hardand soft limits simultaneously. In addition, various related reports canbe generated from one or more infusion pumps. One type of report is asoft limit override report (discussed below). Following is an example ofhow soft limit override reports can be generated. Persistent storagedesign for SoftLimit Alert/Override report is driven by both specificrequirements for the “saving” of the uploaded logs and by the indirectrequirements for parsing the raw log data to identify clinical action,partial events, and duplicate log entries. In one example, all log datamaintains an association with the Infusion pump from which it wasuploaded.

Raw log data is persisted both for archiving purposes and to supportdirect reporting (listing) of the log contents. Prior to itspersistence, the raw log data undergoes a first pass of parsing toremove those portions of the log that represent old data that hasalready been uploaded to the PC but remained stored in the infusion pump(because the log is not cleared following an upload). The followingdatabase tables are defined to hold the parsed log data.

Table Name Purpose UploadHistory A record in this table represents aspecific session involving the upload of event log data from an Infuser.UploadEvent A record in this table represents a single, raw event ascaptured by, and uploaded from, the Infuser. EventType A look up tableof log event type of interest to the PC application ClinicalAction Arecord in this table represents a single attempt to execute a program toadminister a drug. Note that a clinical event is only recorded in thedatabase if it results in the occurrence of a reportable event.

The first three tables listed, UploadHistory, UploadEvent, andEventType, support the existing functionality to persist the rawuploaded event data. The fourth table listed, ClinicalAction, isintended to provide the necessary context for an individual event (theSoft Limit Alert/Override) to generate a meaningful and useful report.

The individual fields of each of the tables described above areillustrated as follows. First, the fields from the UploadHistory arelisted, along with a description of their purpose.

Field Name Purpose UploadHistoryID A unique (sequential) identifier foran upload session. This is the Primary Key for the table. SerialNumber Aunique identifier for the Infuser from which the upload was taken. Thisis a Foreign Key to the Pump table (existing). CompositeVersion Thisfield holds the information necessary to unique- ly identify the Libraryinstalled on the Infuser DateUploaded The Date (and time) when theupload was successfully completed. State Identifies the current state ofthe upload process. Possible states include Uploaded, Consumed(completely parsed and persisted)

Next, the fields from the UploadEvent are listed, along with adescription of their purpose.

Field Name Purpose UploadEventID A unique (sequential) identifier for anuploaded event. This is the Primary Key for the table. UploadHistoryIDThe identifier of the UploadHistory from which this event was created.Foreign Key to the UploadHistory table. EventTypeID The type of theevent. Foreign key to the EventType table. EventDate The date stamp fora single log as uploaded from an infuser EventData The contentsforsingle line of raw data as uploaded from an Infuser. DateCreated Thetime that the event is added to the database.

Next, the fields from the EventType are listed, along with a descriptionof their purpose.

Field Name Purpose EventTypeID A unique (sequential) identifier for anevent type. This is the Primary Key for the table. EventName The name ofthe event. Note this table holds event types that are of interest to thePC application for the purposes of parsing reportable events. This willbe a subset of the event types produced by the Infuser. DateCreated Thedate that the item is added to the database.

Finally, the fields from the ClinicalAction are listed, along with adescription of their purpose.

Field Name Purpose ClinicalActionID A unique (sequential) identifier fora clinical action. This is the Primary Key for the table.UploadHistoryID The identifier of the UploadHistory from which thisclinical event was parsed. This is a Foreign Key to the UploadHistorytable. UploadEventID A unique (sequential) identifier for an uploadedevent. CcaName The name of the clinical care area programmed for thisaction. Status Indicating whether all the data for this action wasavailable in the log (Complete). Partial if only partial data wasavailable. Attempted Dose The dose value that user input. ProgrammedDoseThe dose that is being delivered. SoftLimit The dose limit valueDosingUnits The current dose units SoftLimitType Indicates the softlimtis upper or lower limit OverrideType Indicates the softlimitOverridetype is alert or override InfuserChannel The current infuser channelStepNumber The step that the softlimit is violate DrugName The drug nameprogrammed for this action. DrugConcentration The drug concentrationprogrammed for this action. DeliveryConfirmedProgramConfirmed Indicateswhether or not the delivery program was confirmed.

In one example, all of the fields listed are required and areconstrained to be “not null”. In this example, all data fields support avalue of “not available” to indicate that a specific field has no valuebecause it could not be retrieved from the event log (e.g., due tooverwriting when the log exceeds 321 lines). The following diagramillustrates the data model to support the Soft Limit Alert or Overrideclinical event. FIG. 26 is a diagram illustrates a data model to supporta soft limit alert or override clinical event.

FIG. 7 shows an example of one soft limit override report. FIG. 7Acontains an explanation of the headings and data shown in FIG. 7. FIGS.7B-E and 8A-D show examples of soft and hard limit override reports forseveral different drugs, in this example, dopamine, heparin, insulin,and Vancomycin. The reports shown in FIGS. 7B-7E list the type of alertpresented (lower hard limit, lower soft limit, upper soft limit, upperhard limit) and the number of times each alert was presented. For eachtype of alert presented, the report also shows statistics relating tohow the user responded to the alerts. In this example, the reportindicates the number of times the alert was overridden or notoverridden. In addition, the report also indicates the number of times“No” was entered by a user when asked to confirm the entry ofinformation. FIGS. 8A-8D show another example of alert and overridereports. The reports shown in FIGS. 8A-8D are similar the reports shownin FIGS. 7B-7E, except each alert is separated by CCA (in this example,ICU and MedSurg). It is apparent from these examples that any desiredinformation can be collected and reported by the present invention.

One advantage of the present invention is that both hard and soft limitscan be provided for each drug, and any drug/CCA combination can beascribed one, two, three, or four limits. When the capability ofproviding both hard and soft limits exists, there the sixteencombinations of limits that can be used. Each of the four limits cancontain a value specifying a limit, or the “limit” can be unrestricted(indicated by None in the appropriate field). These two possibilitiesexist for each limit, i.e., the lower hard limit, lower soft limit,upper soft limit and upper hard limit). This feature allows a user toconfigure a device in various combinations, such as a hard upper limitonly, hard and soft upper and lower limits, hard and soft upper limits(no lower limits), hard and soft lower limits (no upper limits), etc. Inthe example of two sets of upper and lower limits, there are 16 possiblecombinations of configurations. If additional sets of limits are used,more combinations are possible. In one embodiment, hard limits are theupper and/or lower dose limits for the selected drug and selected CCAthat cannot be overridden by a user. The hard limit in anotherembodiment may require or allow supervisory override. The hard limits,authority levels, and overridability, are defined by a hospital for eachdrug in its drug library. The hard limits for a particular drug may varyacross different CCAs, if assigned.

In one embodiment, soft limits are upper and/or lower dose limits forthe selected drug and selected CCA that can be overridden by a user.Soft limits for a particular drug, if assigned, may vary across CCAs. Aset of rules is provided for the drug library that triggers alerts orwarnings when soft limits are reached. The warnings require an explicitoverride step on the part of the operator. Similarly a set of rules isprovided for the drug library that provide hard limits on the range ofdelivery rates the user is allowed to program. For example, if a lowersoft limit is set to 10 mL/hr and the clinician enters 9 mL/hr, theinfuser will display a soft limit override alert. This alert, which isrecorded in the infuser's history log, notifies the clinician that theentry is outside the range of the soft limits set for that drug entry.The clinician can choose to continue programming using the override, orcancel the override and re-enter another value. If the clinician choosesto override the soft limit, the event is recorded separately in theinfuser's history log. Hard and soft limits can be set on various otherdrug parameters. Examples include a dosage rates, drug delivery time,drug concentration, the weight of a patient, the volume to be infused(VTBI), etc.

Another use of hard and/or soft limits relates to correct data entry.For example, a hard limit can be set on time period entries so that auser can only enter values between 0 and 59. In this example, the systemwill realize a data entry error and force the user to enter a value inthe valid range. In another example, for various drug fields, onlycertain values or ranges will be allowed to be entered. 15A showsexamples of values that may be entered for drug unit, drug amount,diluent amount, delivery dose/rate units, and hard and soft limitfields. If a user attempts to enter other values, the system will forcethe user to enter a valid field, or will generate an alert or alarm.

The invention also allows the import and export of drug libraries fromone computer to another. Before a library can be imported, it must beexported. Generally, a drug library can be exported to a finalized drugLibrary (FDL) having a predefined format, which makes the library safelyand securely portable to other computers where they can be imported andset as an active library. For example, for a first PC having an activelibrary, the library can be exported into a binary format, and moved(via a network, computer readable media, etc.) to a second PC, where itis imported, therefore synchronizing the libraries at the first andsecond PCs. The special file extension (FDL) and recognition by thesoftware between computers is required.

When an FDL is exported, the entire drug library is first “selected”from the database, using the SelectEntireDrugLibrary stored procedure(see below). That procedure actually contains several select statements,with one statement per table. The tables are the same as for copy. Foreach table, the export method serializes the table name, number of rowsand columns, then each row is serialized, column by column. Note thatthe original database index values are serialized. When the library isread from the file, the index values will no longer be valid—but shouldbe mapped, the same as if the library were being copied. In one example,the FDL Files are “read only” files. Since the FDL files are inJava-serialized format, a FDL file is not easily modified by a user withordinary software applications. This feature is part of the reason forusing serialization—to discourage users from tampering with finalizeddrug libraries.

When an FDL is imported, first all the serialized information is readinto memory, in the form of a three-dimensional array. There are threearray dimensions, one dimension for the tables, one dimension for therows, and one dimension for the columns. The sizes of the row and columndimensions may be different for each table. This “raw” data is insertedinto the database, table-by-table, row-by-row. Also, index mappings maybe performed along the way. Next, as the rows are inserted, new indexvalues will be generated, and are stored in a map, similar to whathappens during the copy operation. Some tables may contain indexes toother, previously inserted tables. These indexes are converted from theoriginal values to the new values, using the generated map. Theseconverted index values are the ones that are inserted into the new rows.After an FDL has been stored in the database, it becomes the FinalizedDrug Library, making another Finalized Drug Library into an Archivedlibrary.

Following is a description of FDLData.java, which lets the FDL importknow which order the tables are stored in the array, what the indexdependencies are, which columns to store in the map, which column valuesneed to be mapped to new values before they can be inserted, etc.

It is important to realize that, just as with copying a drug library,the order in which tables are processed during an FDL import isimportant. That order is encoded in the FDLData.java file as enumeratedconstants. Following is an example of such enumerated constants:

-   -   public static final int DRUG_LIBRARY_TABLE=1;    -   public static final int DOSING_UNITS_TABLE=2;    -   public static final int DRUG_AMOUNTS_TABLE=3;    -   public static final int DILUENT_UNITS_TABLE=4;    -   public static final int DRUG_LABELS_TABLE=5;    -   public static final int DRUG_CLASS_TABLE=6;    -   public static final int DRUGS_TABLE=7;    -   public static final int CONCENTRATION_TABLE=8;    -   public static final int RULE_SET_TABLE=9;    -   public static final int CCA_TABLE=10;    -   public static final int DEVICE_SETTINGS_TABLE=11;    -   public static final int CCA_SETTINGS__TABLE=12;    -   public static final int INFUSER_SETTINGS_TABLE=13;    -   public static final int DRUG_FORMULARY_TABLE=14;    -   public static final int CCA_LIBRARY_TABLE=15;    -   public static final int TABLE_COUNT=16;

These constants can be used as indexes into the three-dimensional arrayof raw data described above. This section of code may also be generatedby the PostSchemaChange.sql file, in case changes have been made to thedatabase schema.

For each table that gets exported/imported there is an instance ofTableInfo, which keeps track of the table name, the number of columns,which of its columns, if any, other tables might depend on (theidColumn), and finally, a set of indexes to tables that this tabledepends on. The “id Column”, if specified, is generated by the databasefor each row of that table, as the rows are inserted. The old value(from the serialized file) and the new value (from the database rowinsertion) are stored in an index map. Then, every other in-memory tablethat references the old index is updated to contain the new index beforeits rows are inserted. For example, the “idColumn” of the RuleSet tableshown below is its RuleSetID column, which happens to be the 2nd columnin the TableInfo table. Thus, the “idColumn” in the TableInfo instancefor RuleSet equals 1 (the first column is 0, the 2nd column is 1, . . .). Now, assume that when the FDL was exported, there was a row in theRuleSet table where the RuleSetID was equal to 5047:

RuleSet (slightly simplified): RuleSetID DrugLibraryID DrugLabelIDDosingUnitID LHL LSL USL UHL . . . . . . . . . . . . . . . . . . . . . .. . 5047 1038 2 0 None 10 200 None . . . . . . . . . . . . . . . . . . .. . . . .

The CcaLibrary and DrugFormulary tables (shown below) each have aRuleSet dependency—their RuleSetID columns.

CcaLibrary (slightly simplified): CcaLibraryID DrugLibraryID RuleSetIDCcaID DrugFormularyID DisplayOrder . . . . . . . . . . . . . . . . . .3252 1038 5047 2108 4217 0 . . . . . . . . . . . . . . . . . .

Drug Formulary: DrugFormularyID DrugLibraryID ConcentrationID RuleSetID. . . . . . . . . . . . 4218 1038 6150 5047 . . . . . . . . . . . .

Now assume that when the FDL is imported, that particular row of theRuleSet table (shown below is given a new index value of 5122.

RuleSet (slightly simplified): RuleSetID DrugLibraryID DrugLabelIDDosingUnitID LHL LSL USL UHL . . . . . . . . . . . . . . . . . . . . . .. . 5047 1038 2 0 None 10 200 None . . . . . . . . . . . . . . . . . . .. . . . . 5122 1039 2 0 None 10 200 None

Later, before the CcaLibrary or DrugFormulary tables are inserted, anyRuleSetID values of 5047 are first changed to 5122. The “idColumn”setting of 1 tells the FDL import code to store the 5047 to 5122mapping.

Mapping (in memory, not a database table): OldIndexValue NewIndexValue .. . . . . 5047 5122 . . . . . .

The 5047 values in the CcaLibrary and DrugFormulary tables are changedto 5122 while they are still in memory—in the three dimensional table ofraw data. After those tables have been processed, the CcaLibrary andDrugFormularyID tables are shown below.

CcaLibrary (slightly simplified): CcaLibraryID DrugLibraryID RuleSetIDCcaID DrugFormularyID DisplayOrder . . . . . . . . . . . . . . . . . .3252 1038 5047 2108 4217 0 . . . . . . . . . . . . . . . . . . 3333 10395122 2222 4444 0 . . . . . . . . . . . . . . . . . .

Drug Formulary: DrugFormularyID DrugLibraryID ConcentrationID RuleSetID. . . . . . . . . . . . 4217 1038 6150 5047 . . . . . . . . . . . . 44441039 6666 5122 . . . . . . . . . . . .

Referring back to the FDLData.java file, various sections of the fileare automatically generated by the PostSchemaChange.sql file. They canbe cut and pasted from the output of that file into the java code.Specifically, the table order constants (as shown above), and theTableInfo array and its contents can be generated in the event of adatabase schema change.

The PostSchemaChange.sql file also generates most of theSelectEntireDrugLibrary stored procedure (described below) at the sametime. Again, the SQL code it generates can be cut and pasted into theproper place in the SelectEntireDrugLibrary.sql file.

When a FDL is to be exported, the data that makes up the library isobtained from the database (so it can be serialized to a file). TheSelectEntireDrugLibrary stored procedure does that. The procedureutilizes several select statements, selecting the tables in a specificorder, and selecting the columns of any given table in a specific order.

Since the order of the tables, and the order of the columns within thosetables is important to the FDL import code that reconstructs a druglibrary, it is essential that the FDL export, FDL import, andSelectEntireDrugLibrary code be kept in sync with each other. Theslightest change in the database schema can necessitate changes inFDLData.java and SelectEntireDrugLibrary, as well as the CopyDrugLibrarystored procedure. The slightest error (mismatch) will stop things fromworking properly.

Except for the CopyDrugLibrary code, most of the java and SQL changescan be produced by running the PostSchemaChange.sql file after the newschema is in place. Simply cut and paste the generated code over thematching/similar code in those files. The CopyDrugLibrary code changescan also be automated.

One feature of the present invention is that data can be imported to andexported from the system. Library text files that use either CommaSeparated Values (CSV) or Tab Separated Values (TSV) can be imported bythe system. One unique feature is the entire file must pass the RSVchecks specified above or the entire import is considered invalid.

It will be appreciated by one skilled in the art that the presentinvention is applicable to a variety of pumps or medical devices and notlimited to the pumps with which it is described herein. Furthermore, oneskilled in the art will appreciate that the connections between thepumps and the computer could be wireless or hard-wired, withoutdetracting from the invention. Wireless communication engines can beconnected to the pump and the computer and use a wireless networkutilizing communication protocols such as BLUETOOTH™ (IEEE 802.15) orother protocols such as those described in IEEE 802.11, 802.11a,802.11b, and 802.11g. Communication within the wireless network mayutilize radio frequency electromagnetic radiation, infrared radiation,or other means for accomplishing wireless communication between networkelements.

In one example, the plug and play module 4 can house or encase awireless communication or connectivity engine. Conventional wirelesscommunication modules for medical pumps have been of the externalplug-in, bolt-on type for optimal reception and transmission. Theseconventional communications modules add significantly to the spacerequired for the pump and alter its profile. They can be damaged ordislodged if the pump is dropped. Furthermore, there are stringentstandards for maximum electrical emissions from medical equipment toprevent potential interference with other medical equipment. Thewireless plug and play module 4 of the present invention does notsubstantially increase the space occupied by the pump. With the improvedantenna design described below, placing the plug and play module 4inside the pump housing 2 still provides good position/orientationtolerant reception and transmission characteristics and provides thesurprising result of lower, better controlled electronic emissions fromthe device.

As mentioned above, an infusion pump of the present invention is capableof being connected to various other devices. In one example, the presentinvention uses a connectivity engine to provide system functions, inaddition to enabling a pump to connect to a variety of other devices.Following is one example of a connectivity engine which can be used withthe present invention. In the example described, the various featuresand capabilities can be customized as desired.

The connectivity engine is an assembly inside the housing of an infuserwith the purpose of providing key system functions and enabling theinfuser to connect to a variety of external systems including medicationmanagement units (MMU), hospital information systems (HIS), pharmacyinformation system (PhIS), and other medical information systems throughboth wired and wireless communication links. The connectivity engine caninterface via data and address buses on its printed wiring assembly tothe CPU printed wiring assembly via a board to board connector. In oneexample, the connectivity engine supports about 1-2 Mbytes of read-onlyprogram and 1 M-byte or more of read/write data memories for the infuserCPU printed wiring assembly. The connectivity engine can communicatewith a host computer via a serial data port, which is externally locatedon the rear of the infuser unit. In one example, the data port iselectrically isolated.

In this example, the connectivity engine includes a front panel lockoutswitch, which is externally accessible on the rear of the unit. Theconnectivity engine may also include a nurse call interface, which isexternally located on the rear of the unit. The nurse call interfaceallows use with a nurse call device, such as a switch held by a patientthat allows the patient to send an alarm message to a nurse. Theconnectivity engine may also include an alarm volume control, which isaccessible from the rear of the instrument. This control will adjust thevolume level for an audible alarm to alert the user to errors, warnings,etc.

The connectivity engine is a modular and intelligent printed wiringassembly capable of supporting the interconnection of an infuser with avariety of external systems for the purpose of establishingbi-directional communications between the infuser and external systems.Examples of external systems may include medication management units(MMU), medical information systems, HIS, and external wireless AccessPoints. Other examples of external systems include one or more PCs fordownloading drug libraries and software to the infuser and uploadinglogs from the infuser.

As mentioned above, the present invention is capable of both wired andwireless communications. Examples of wired interfaces that may besupported include Ethernet 10BaseT and 100BaseT standard, as well asMegabit and fiber optic interfaces. Examples of wireless interfaces thatmay be supported include IEEE802.11a/b/g, as well as any other desiredinterfaces. The connectivity engine can support various networkprotocols, including XML, HTML, ftp, and Telnet services.

In one example, the present invention normally operates using either awired or wireless interface. In another example, the invention cansimultaneously use both wired and wireless interfaces. In this example,when a fault is detected in either mode, all communicationsautomatically can switch to the working mode.

The connectivity engine hardware can take on many forms, depending onthe functionality and capabilities desired. In one example, theconnectivity engine includes the following sub-circuits: CPU memory—RAMand flash, external serial interface, nurse call interface, audio volumecontrol, lockout switch, connectivity engine controller, Ethernetinterface, wireless interface, and antenna assembly. The followingexternal connectors can also be included: Ethernet RJ-45 connector, RFconnector for connecting the Wi-Fi transceiver to the Antenna printedwiring assembly, RS232 serial port DB9 connector, and Nurse CallInterface connector.

FIGS. 9-11 are block diagrams of an exemplary connectivity engine thatmay be used with the present invention and fully enclosed within thepump housing rather than in a removable plug and play module. FIG. 9shows a user interface controller (UIC) 20, which is connected to aconnectivity engine 22 via a universal serial bus (USB). Of course,other interfaces could also be used (e.g., RS232 serial interface,parallel interface, etc.). The connectivity engine 22 is an input/outputboard shown in FIG. 9 with Ethernet and WiFi connections. FIG. 10 is ablock diagram of a connectivity engine including a processor 24. Theprocessor 24 is connected to an Ethernet transceiver 26 and transformer28 to provide an Ethernet interface to communicate with one or more PCs10. This interface could also be provided wirelessly. The processor isalso connected to a USB controller 30. The USB controller 30 isconnected over a USB interface to UIC USB client 32 and to RFtransceiver 34.

The RF transceiver 34 is shown with two antennas 36 and 38. While thepresent invention may include just one antenna, two antennas can improvethe performance of the invention. Since the communication between theinvention and other devices can be critical, it is desirable to providethe most reliable wireless connection possible. Two diverse antennasoptimize the wireless communication coverage of the invention. Theinvention uses a combination of two different diversity schemes, spatialdiversity and pattern diversity. Traditionally, in spatial diversity twoidentical antennas are located at two separate locations to providediversity reception to a common receiver. In this case, the scheme notonly separates the antennas physically but also achieves patterndiversity by placing the two antennas orthogonally. This way, peaks inone antenna fill out the nulls of the other antenna such that thatcombined radiation pattern looks more omnidirectional than just a singleantenna. The antenna diversity scheme achieves several objectives.First, it is desirable to have the antenna(s) not so apparentexternally, making it desirable to use an internally embeddedantenna(s). Second, in most applications, the invention must meet theEMC requirements specified in the IEC 60601-1-2, 2nd Edition standard,which limits the amount of emissions a device can emit. The use of twodiverse antennas helps to achieve these objectives. In one example, theantenna(s) used with the present invention are enclosed within thehousing of the infusion pump. This help to keep dirt, harmful solventsand debris away from the antennas, enhances control of emissions, aswell as reduces the chance of damage to an antenna.

In another example, the connectivity engine includes memory used ascache for temporarily storing information. The cache can make the systemwork more efficiently and more reliably.

FIG. 11 is a block diagram of the wireless interface shown in FIG. 10and shows a baseband processor and medium access controller 40, whichincludes a USB interface for communication with a host computer. Theprocessor 40 is connected to a modulator/demodulator 42, an RF/IFconverter 44, and a power amplifier 46. The antennas 36 and 38 aredriven by the power amplifier 46 and the RF/IF converter 44.

FIGS. 12A-15 are electronics system diagrams of one example of thepresent invention, as applied to the Abbott PLUM A+® Infuser. FIGS.12A-12D shows a CPU and a communication or connectivity engine. Thecommunication engine facilitates communication with other devices viawired or wireless interfaces. The communication engine can utilize thesame orthogonally arranged antennas as described above relative to FIGS.9-11. FIG. 12 also shows a digital I/O chip for interfacing with variouscomponents, such as switches and user controls, a nurse call jack,keypads, alarm speakers, LEDs, etc. FIG. 13 shows the power supplysubsystem, including power supply circuitry and an isolation barrier.FIG. 14 shows the mechanism subsystem, including pressure sensors, airsensors, motor position sensors, and a motor drive.

FIG. 17 is an electronic system block diagram of a patient-controlledanalgesia (PCA) pump. FIGS. 18 and 19 are electronic system interfaceblock diagrams of a connectivity engine that may be used with the PCApump shown in FIG. 17. FIG. 17 includes a power supply, which suppliespower to the system. A microcontroller interfaces with variouscomponents of the system, including a keypad, a patient pendent, serialport, bar code reader, various sensors, various switches, motor drivers,displays and LED indicators, and a speaker.

FIG. 18 is a block diagram of a connectivity engine that may be usedwith the PCA system shown in FIG. 17. FIG. 18 shows a connectivityengine and several interfaces including Ethernet, WiFi, an externalRS232 serial interface, and an RS232 serial interface to the hostdevice. FIG. 18 also illustrates that the connectivity engine can drawpower (via a power connector) from the PCA pump (FIG. 17). The PCA pumpgenerates a motor voltage VMOT for powering the various motors. The samevoltage VMOT can be used to power the connectivity engine.

FIG. 19 is a more detailed block diagram of the connectivity engine ofFIG. 18. The connectivity engine includes a connectivity enginecontroller (CEC), which is a wired/wireless connectivity moduleincorporating both a Ethernet processor and an 802.11b wirelesstransceiver. An Ethernet transceiver and all necessary circuitry toprovides a 10/100 Base T interface through an RJ-45 jack. A USBcontroller and all the necessary circuitry controls a USB (host)interface with the WiFi. The two RS232 ports are connected to a systembus. The connectivity engine also includes FLASH and SDRAM memory.

In the preceding detailed description, the invention is described withreference to specific exemplary embodiments thereof. Variousmodifications and changes may be made thereto without departing from thebroader scope of the invention as set forth in the claims. Thespecification and drawings are, accordingly, to be regarded in anillustrative rather than a restrictive sense.

1.-218. (canceled)
 219. A method of administering medication to one ormore patients, the method comprising: providing a host computer;providing a plurality of medication administering devices, each devicehaving a controller for controlling the operation of the device and oneor more storage locations for storing information relating to theoperation of the device; providing a communication link between the hostcomputer and the plurality of medication administering devices;exchanging information between the host computer and medicationadministering devices; and generating one or more reports relating tothe operation of the plurality of medication administering devices. 220.The method of claim 219, wherein the plurality of medicationadministering devices send event logs to the host computer, and whereinthe one or more generated reports includes event log information from atleast one of the medication administering devices.
 221. The method ofclaim 220, wherein the generated reports includes statistical datarelating to event logs from a plurality of medication administeringdevices.
 222. The method of claim 220, wherein the plurality ofmedication administering devices log override data relating to useroverrides of device parameter limits.
 223. The method of claim 222,wherein the plurality of medication administering devices send theoverride data logs to the host computer, and wherein a report isgenerated based on the override data logs.
 224. The method of claim 223,wherein the generated report indicates the number of times users haveoverridden device parameter limits.
 225. The method of claim 223,wherein the generated report indicates the number of times users havedeclined to override a device parameter limit.
 226. The method of claim219, wherein the one or more reports include information relating to theoperation of one or more of the medication administering devices. 227.The method of claim 219, further comprising storing exchangedinformation from the plurality of medication administering devices tobuild a database of device information.
 228. The method of claim 227,further comprising generating a report including statistics relating tothe drugs administered by a given set of medication administeringdevices.
 229. The method of claim 219, wherein the communication link isa wired network.
 230. The method of claim 219, wherein the communicationlink is a wireless network.
 231. The method of claim 219, wherein thehost computer and plurality of medication administering devices formatmessages using an extensible markup language (XML).
 232. The method ofclaim 219, wherein the medication administering devices are infusionpumps. 233.-241. (canceled)